Enterprise Version
detailed but rough